這篇目的在於可以在本地端架設 MLflow tracking server,下一篇會介紹 MLflow 的基本操作。
首先,我們先來看看 MLflow 的幾個基本元件:
Reference: https://mlflow.org/docs/latest/what-is-mlflow.html#mlflow-components
MLflow Tracking: 用來記錄參數、程式碼版本、指標、模型環境相依性、模型 Artifact 的 API。MLflow Tracking 有一個 UI 用來檢視和比較執行和其結果。
MLflow Models: 將模型封裝,讓你可以輕鬆部署訓練好的模型 (來自任何機器學習函式庫) 到 Docker、Apache Spark、Databricks、Azure ML 和 AWS SageMaker 等平臺進行批次或即時推論。
MLflow Model Registry: 一個集中的模型存儲庫、一組 API 和 UI,專注於 MLflow 模型的審批、品質保證和部署。
MLflow Projects: 一個標準格式,用於打包可重複使用的程式碼,可以使用不同的參數來訓練模型、視覺化資料或執行任何其他有關資料科學的 Job 。
MLflow Recipes: 預先定義的模板,用於開發各種常見 Job 的模型,包括分類和回歸。
在本地如何跑 MLflow Tracking Server,這邊介紹使用 Container 方式。
# Pull MLflow Docker image
# 一般來說,使用標準的 MLflow Docker image 即可
# docker pull ghcr.io/mlflow/mlflow:v2.7.1
# 但是如果你是使用 OrbStack 的 MLflow Docker image,而且跑的是 Linux amd64,則需要使用下面這個指令
# Ref: https://github.com/mlflow/mlflow/pkgs/container/mlflow
docker pull ghcr.io/mlflow/mlflow:v2.7.1@sha256:4aefc70122ecda2ac50b50f87ba752d88cf62c915e5ecb42455ca8f5b23768f0
ghcr.io/mlflow/mlflow@sha256:4aefc70122ecda2ac50b50f87ba752d88cf62c915e5ecb42455
docker tag ghcr.io/mlflow/mlflow:v2.7.1@sha256:4aefc70122ecda2ac50b50f87ba752d88cf62c915e5ecb42455ca8f5b23768f0 ghcr.io/mlflow/mlflow:v2.7.1
# Run MLflow Tracking Server
docker run --rm -p 5000:5000 --name mlflow-server ghcr.io/mlflow/mlflow:v2.7.1 mlflow server -h mlflow-server.orb.local
然後瀏覽器開啟 mlflow-server.orb.local